#include <stdio.h>
#include <stdbool.h>
#include <windows.h>

void Swap(int *left, int *right)
{
    int tmp = *left;
    *left = *right;
    *right = tmp;
}

void Print(int *arr, int size)
{
    for(int i = 0; i < size; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

void select_sort(int* arr, int size)
{
    //先假定当前元素为最小元素，然后再去后面的序列中寻找是否存在比他还小的
    
    int min = 0;

    //需要n - 1 趟
    for(int i = 0; i < size - 1; i++)
    {
        min = i;
        for(int j = i + 1; j < size; j++)
        {
            if(arr[j] < arr[min])
            {
                min = j;
            }
        }
        Swap(&arr[i], &arr[min]);
    }
}

int main()
{
    
    int arr[10] = {9,6,8,4,2,5,7,1,3,10};
    int size = sizeof(arr) / sizeof(arr[0]);
    select_sort(arr, size);
    Print(arr, size);
    system("pause");
    return 0;
}